<?php
class Persona extends Modelo_base {

	var $table = 'persona';

	var $has_many = array('prod_proveedor_producto', 'conf_importar_excel', 'prod_stock');
	var $has_one = array('ubic_ubicacion', 'condicion_pago');

    // Validaciones de campos
    var $validation = array(
        'razon_social' => array(
            'label' => 'Razón Social',
            'rules' => array('required', 'trim', 'max_length' => 80),
            'get_rules' => array('trim')
            ),
        'afip_tipodoc_id' => array(
            'label' => 'Tipo Documento',
            'rules' => array('required')
            ),
        'numero_doc' => array(
            'label' => 'N° Documento',
            'rules' => array('trim', 'integer', 'max_length' => 14, 'cuitValido', 'unique_pair' => 'afip_tipodoc_id')
            ),
        'telefono' => array(
            'label' => 'Teléfono',
            'rules' => array('trim', 'max_length' => 15),
            'get_rules' => array('trim')
            ),
        'telefono2' => array(
            'label' => 'Otro Teléfono',
            'rules' => array('trim', 'max_length' => 15),
            'get_rules' => array('trim')
            ),
        'email' => array(
            'label' => 'Email',
            'rules' => array('trim', 'max_length' => 150, 'valid_email'),
            'get_rules' => array('trim')
            ),
        'observaciones' => array(
            'label' => 'Observación',
            'rules' => array('trim', 'max_length' => 120),
            'get_rules' => array('trim')
            ),
        'fecha_baja' => array(
            'label' => 'Fecha Baja',
            'rules' => array('prepararFecha' => 'Y-m-d', 'valid_date'),
            'get_rules' => array('prepararFecha' => 'd/m/Y')
            ),
        'afip_tiporesponsable_id' => array(
            'label' => 'Tipo Responsable',
            'rules' => array('required')
            ),
        'margen_ganancia' => array(
            'label' => '% Ganancia',
            'rules' => array('numeric')
            ),
        'es_proveedor' => array(
            'label' => 'Es Proveedor',
            'rules' => array('boolean')
            ),
        'es_cliente' => array(
            'label' => 'Es Cliente',
            'rules' => array('boolean')
            ),
        'condicion_pago_id' => array(
            'label' => 'Condición de Pago',
            'rules' => array('integer')
            ),
        'ingresos_brutos' => array(
            'label' => 'N° de IIBB',
            'rules' => array('trim', 'max_length' => 20, 'integer'),
            'get_rules' => array('trim')
            )
    );

    // Optionally, don't include a constructor if you don't need one.
    function __construct($id = NULL)
    {
        parent::__construct($id);
    }

    public function toString()
    {
        $objDoc = new Afip_documento($this->afip_tipodoc_id);
        $objResp = new Afip_responsable($this->afip_tiporesponsable_id);

        $datos = '';
        $datos .= 'Cód.: ' . $this->id . '     ||     ';
        $datos .= 'Razón Social: ' . $this->razon_social . '     ||     ';
        $datos .= $objDoc->descripcion . ': ' . $this->numero_doc . '     ||     ';
        $datos .= $objResp->descripcion;

        return $datos;
    }

    public function getDocumento()
    {
        return new Afip_documento($this->afip_tipodoc_id);
    }

    public function getResponsable()
    {
        return new Afip_responsable($this->afip_tiporesponsable_id);
    }
}

/* End of file prod_proveedor.php */
/* Location: ./application/models/prod_proveedor.php */